package com.qiaofang.applet.service.other.service;

import com.qiaofang.applet.common.base.BaseService;
import com.qiaofang.applet.common.client.yxim.model.YxProperties;
import com.qiaofang.applet.service.other.domain.YxImUser;
import com.qiaofang.applet.service.other.service.dto.AccidsQueryDto;
import com.qiaofang.applet.service.other.service.dto.YxImUserDTO;
import com.qiaofang.applet.service.other.service.dto.YxImUserReqDTO;

import java.util.List;

/**
 * 网易云信im
 *
 * @author junze.liu
 */
public interface YxImUserService extends BaseService<YxImUser, String> {

    /**
     * 创建云信im用户信息
     *
     * @param reqDTO
     * @return
     */
    YxImUserDTO createYxIm(YxImUserReqDTO reqDTO, YxProperties config);

    /**
     * 根据userId和userType获取im用户信息
     *
     * @param reqDTO
     * @return
     */
    YxImUserDTO getYxImUserByDto(YxImUserReqDTO reqDTO);

    String getYxImUserIdAndType(String accid);

    YxImUser findByAccidAndUserType(String accid,String userType);

    /**
     * 云信用户表会员转经纪人
     * @param memberId
     * @param employeeUniqueUuid
     */
    void memberToEmp(String memberId, String employeeUniqueUuid);

    /**
     * 云信用户表经纪人转普通用户
     * @param memberId
     * @param employeeUniqueUuid
     */
    void empToMember(String memberId, String employeeUniqueUuid);

    /**
     * 根据accid列表获取yx用户详情
     * @param accidsQueryDto
     * @return
     */
    List<YxImUserDTO> getYxUserInfoList(AccidsQueryDto accidsQueryDto);
}
